import request from '@/utils/request'

/**
 * 密码登录
 * @param {string} phone 手机号
 * @param {string} password 密码
 * @param {string} captcha 图形验证码
 */
export const loginPwd = (phone, password, captcha) => {
  return request.post('user/login/pwd/do', {
    phone, password, captcha
  })
}

/**
 *手机验证码登录
 * @param {string} phone 手机号
 * @param {string} password 手机验证码
 * @param {string} captcha 图形验证码
 */
export const loginCode = (phone, password, captcha) => {
  return request.post('user/login/code/do', {
    phone, password, captcha
  })
}

/**
 * 获取登录手机验证码
 * @param {string} phone 手机号
 * @param {string} code 图形验证码
 */
export const getLoginCode = (phone, code) => {
  return request.post('user/login/code/send', {
    phone,
    code
  })
}
/**
 * 查询用户信息
 */
export const getUserInfo = () => {
  return request.get('user/info')
}

/**
 * 获取图形验证码
 * @param {string} phone 手机号
 */
export const getCaptcha = (phone) => {
  return request.get(`user/captcha/${phone}`)
}

/**
 * 校验邀请码是否可用
 * @param {string} invitationCode 邀请码
 */
export const checkInvitationCode = (invitationCode) => {
  return request.get(`user/regist/icode/check/${invitationCode}`)
}

/**
 * 获取注册手机验证码
 * @param {string} phone 手机号
 * @param {string} code 图形验证码
 */
export const getRegisterCode = (phone, code) => {
  return request.post('user/regist/code/send', {
    phone, code
  })
}

/**
 * 注册
 * @param {string} phone 手机号
 * @param {string} code 手机验证码
 * @param {string} invitation_code 邀请码
 */
// eslint-disable-next-line camelcase
export const registerDo = (phone, code, invitation_code) => {
  return request.post('user/regist/do', {
    phone, code, invitation_code
  })
}

/**
 * 修改密码-发送验证码
 * @param {string} phone 手机号
 * @param {string} code 图形验证码
 */
export const getPasswordCode = (phone, code) => {
  return request.post('user/password/modify/code/send', {
    phone, code
  })
}

/**
 * 修改密码-检验验证码
 * @param {string} phone 手机号
 * @param {string} code 手机验证码
 */
export const findPasswordCodeCheck = (phone, code) => {
  return request.post('user/password/modify/code/check', {
    phone, code
  })
}

/**
 * 修改密码-设置密码
 * @param {string} phone 手机号
 * @param {string} password 新密码
 * @param {string} confirmPassword 确认新密码
 * @param {string} reqId 修改密码所需的req_id
 * @param {string} device_type 设备类型 指定为3
 */
export const changePassword = (phone, password, confirmPassword, reqId) => {
  return request.post('user/password/modify/do', {
    phone, password, confirm_password: confirmPassword, req_id: reqId, device_type: 3
  })
}

/**
 * 更新用户信息
 * @param {string} name 姓名
 * @param {string} phone 手机号
 * @param {string} password 密码
 * @param {string} confirm_password 确认密码
 * @param {string} img 手机id
 */
// eslint-disable-next-line camelcase
export const userUpdate = ({ name, phone, password, confirm_password, img }) => {
  return request.post('user/update', {
    name, phone, password, confirm_password, img
  })
}

/**
 * 查询文件列表
 * @param { stirng } name 查询字符串
 * @param { number } page 页码
 * @param { number } pageSize 分页大小
 * @returns {Promise<AxiosResponse<any>>}
 */
export const fileList = (name, page, pageSize) => {
  return request.post('user/file/list', {
    name,
    page,
    page_size: pageSize
  })
}

/**
 * 添加文件
 * @param {number} fileID 文件编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const addFile = (fileID) => {
  return request.put(`user/file/add/${fileID}`)
}

/**
 * 删除文件
 * @param {number} fileID 文件编号
 * @returns {Promise<AxiosResponse<any>>}
 */
export const deleteFile = (fileID) => {
  return request.get(`user/file/delete/${fileID}`)
}
